"""
is 比较的是两个对象的 id 值，也就是比较它们在内存中的地址是否相等。
== 则是比较两个对象的值是否相等。
"""
l = [1,2,3]
s = l
print(l is s)  # True
print(l == s) # True
s = l[:]
print(s is l) # False
print(s == l) # True

"""
值得一提的是，当对象为字符串或者是整数(不可变对象)时，
Python会将它们缓存(但是它仅缓存简单的数字，范围是（-5,256），所以不要使用这个特性。
但在py文件下只要内容相同它们的`id`值就相同)。此时即使不使用 `=`来赋值，它们的内存地址依旧相同。
"""
n = 123
d = 123
print(n is d) # True
print(n == d) # True

a = 257
b = 257
print(n is d) # False
print(n == d) # True